Host processor systems may store and retrieve data using storage devices containing a plurality of host interface units (host adapters), disk drives, and disk interface units (disk adapters). Such storage devices are provided, for example, by EMC Corporation of Hopkinton, Mass. and disclosed in U.S. Pat. No. 5,206,939 to Yanai et al., U.S. Pat. No. 5,778,394 to Galtzur et al., U.S. Pat. No. 5,845,147 to Vishlitzky et al., and U.S. Pat. No. 5,857,208 to Ofek, which are incorporated herein by reference. The host systems access the storage device through a plurality of channels provided therewith. Host systems provide data and access control information through the channels of the storage device and the storage device provides data to the host systems also through the channels. The host systems do not address the disk drives of the storage device directly, but rather, access what appears to the host systems as a plurality of logical volumes. Different sections of the logical volumes may or may not correspond to the actual disk drives.
Thin provisioning (also referred to as virtual provisioning) storage systems present a large amount of storage capacity to a host, but consume space only as needed from a shared pool. The devices of thin provisioning are known as thin devices or thin LUNs. With thin devices, the host visible capacity (e.g., storage perceived by the applications) is larger than the actual allocated space on the storage system. This simplifies the creation and allocation of storage capacity. Thin devices may be sized to accommodate growth without regard for currently available assets. Physical storage is assigned to the server in a capacity-on-demand fashion from a shared pool.
Thin devices may be expanded as a file system runs, but may not be easily shrunk. Once allocated, storage spaces may not be later recycled even if they are freed by the file system. Known systems and techniques for reclaiming space, such as the Solutions Enabler product by EMC Corporation of Hopkinton, Mass. and use of the “symconfigure” command, include checking all the storage chunks allocated for a specified thin device and unmapping or otherwise freeing the allocated, but unwritten, storage chunks only if the storage chunks contain all zeroes. Space reclamation may not occur if any byte of a storage chunk is not zeroed. Utilities, such as SDelete from Microsoft Corporation of Redmond, Wash., may be used to fill unused spaces of a volume with zeroes; however, such utilities may generate a large number of write I/Os that may have a disadvantageous impact on the system and other applications.
Accordingly, it would be desirable to provide a system that provides for efficient reclaiming of unused storage space in thin or virtual provisioning storage systems.